﻿Imports EVOLTA.Promocion.Bl.Bc
Imports EVOLTA.Promocion.Bl.Be
Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration

Partial Class Reportes_Separaciones
    Inherits System.Web.UI.Page

    Private separaciones As List(Of EseparacionVenta) = Nothing
    Private separacionesDetalles As List(Of EseparacionVentaDetalle)

#Region "       Formulario                          "
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.CacheControl = "no-cache"
        Response.AddHeader("Pragma", "no-cache")
        Response.Expires = -1
        '***********************************************************'
        If Not IsPostBack Then
            cargarVendedor()
        End If
    End Sub
    Private Sub cargarVendedor()
        selVendedor.DataSource = Rvendedor.SeleccionarXEstado(Me.Master.descEmpresa, True)
        selVendedor.DataTextField = "NombresCompletos"
        selVendedor.DataValueField = "idVendedor"
        selVendedor.DataBind()
        upVendedor.Update()
    End Sub
    Protected Sub btnBuscar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnBuscar.Click
        If txtFchInicio.Text.Length > 0 AndAlso txtFchFin.Text.Length > 0 Then
            Dim venta As New EseparacionVenta
            With venta
                .idProyecto = Me.Master.idProyecto
                .idEtapa = Me.Master.idEtapa
                .Evendedor = New Evendedor
                .idVendedor = selVendedor.Value
                .fchInicio = txtFchInicio.Text
                .fchFin = txtFchFin.Text
                .filtro = txtCliente.Value
            End With
            separaciones = RseparacionVenta.ReporteSeparacion(Me.Master.descEmpresa, False, venta)
            Session("separacionesLista") = separaciones
            separacionesDetalles = RseparacionVentaDetalle.ReporteSeparacionDetalle(Me.Master.descEmpresa, False, venta)
            Session("separacionesListaDetalle") = separacionesDetalles
            If Not separaciones Is Nothing Then
                egvSeparacionVenta.DataSource = separaciones
                egvSeparacionVenta.DataBind()
                upnSeparacionVenta.Update()
                lblCantidadTotalSeparación.Text = String.Format(": {0}", separaciones.Count.ToString)
                lblTotalPrecioVenta.Text = String.Format(": {0:###,###,##00.00}", (From sep As EseparacionVenta In separaciones _
                                                                                   Select sep.totalPrecioVenta).Sum())
                lblTotalSeparación.Text = String.Format(": {0:###,###,##0.000}", (From sep As EseparacionVenta In separaciones _
                                                                                  Select sep.totalSeparacion).Sum())
            End If
        End If
    End Sub
    Protected Sub btnLimpiar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLimpiar.Click
        Me.lblCantidadTotalSeparación.Text = "0"
        Me.lblTotalPrecioVenta.Text = "0.00"
        Me.lblTotalSeparación.Text = "0.00"
        txtFchInicio.Text = ""
        upFchInicio.Update()
        txtFchFin.Text = ""
        upFchFin.Update()
        egvSeparacionVenta.DataSource = Nothing
        upnSeparacionVenta.Update()
        Me.selVendedor.Value = "0"
        upVendedor.Update()

    End Sub

    Private Function CargarReporteSeparacion(ByVal descEmpresa As String) As DataTable
        Dim resultado As DataTable = Nothing
        Dim dt As DataTable = Nothing
        Dim da As SqlDataAdapter = Nothing

        Dim pIdProyecto As Integer
        Dim pIdEtapa As Integer
        Dim pfchInicio As String
        Dim pfchFin As String
        Dim pFiltro As String
        Dim pVendedor As String

        pIdProyecto = Me.Master.idProyecto
        pIdEtapa = Me.Master.idEtapa
        pfchInicio = Me.txtFchInicio.Text
        pfchFin = Me.txtFchFin.Text
        pFiltro = Me.txtCliente.Value.Trim
        pVendedor = Me.selVendedor.Value


        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_ReporteSepacion_EPAZCENPR", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pIdProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pIdEtapa
                cmd.Parameters.Add("@fchInicio", SqlDbType.Char, 10).Value = pfchInicio
                cmd.Parameters.Add("@fchFin", SqlDbType.Char, 10).Value = pfchFin
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pFiltro
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pVendedor

                Try
                    cn.Open()
                    dt = New DataTable()
                    da = New SqlDataAdapter(cmd)
                    da.Fill(dt)
                    resultado = dt
                Catch ex As Exception
                    resultado = Nothing
                    Throw
                End Try
            End Using
        End Using
        Return resultado
    End Function

    Protected Sub btnExportar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExportar.Click
        Try
            Dim dtSeparaciones As New DataTable
            dtSeparaciones = CargarReporteSeparacion(Me.Master.descEmpresa)

            If dtSeparaciones.Rows.Count Then
                separaciones = Session("separacionesLista")
                separacionesDetalles = Session("separacionesListaDetalle")
                If Not separaciones Is Nothing Then
                    Dim fileName As String = "ConsultaSeparacion{0}.xls"
                    fileName = String.Format(fileName, DateTime.Now.ToShortDateString())
                    Dim Response As HttpResponse = HttpContext.Current.Response
                    Response.ContentType = "application/vnd.ms-excel"
                    Response.Charset = "UTF-8"
                    Response.ContentEncoding = System.Text.Encoding.Default
                    Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName)


                    Response.Write("Proyecto") : Response.Write(vbTab)
                    Response.Write("Etapa") : Response.Write(vbTab)
                    Response.Write("Torre") : Response.Write(vbTab)
                    Response.Write("Tipo") : Response.Write(vbTab)
                    Response.Write("Modelo") : Response.Write(vbTab)
                    Response.Write("N° Inmueble") : Response.Write(vbTab)
                    Response.Write("Area Ocupada") : Response.Write(vbTab)
                    Response.Write("Estac/Modelo") : Response.Write(vbTab)
                    Response.Write("N° Est 1") : Response.Write(vbTab)
                    Response.Write("N° Est 2") : Response.Write(vbTab)
                    Response.Write("Deposito") : Response.Write(vbTab)
                    Response.Write("N° Dep") : Response.Write(vbTab)
                    Response.Write("Nombre Cliente") : Response.Write(vbTab)
                    Response.Write("Precio Dep.") : Response.Write(vbTab)
                    Response.Write("Prec Estac 1") : Response.Write(vbTab)
                    Response.Write("Prec Estac 2") : Response.Write(vbTab)
                    Response.Write("Prec Dep") : Response.Write(vbTab)
                    Response.Write("Desc Sala") : Response.Write(vbTab)
                    Response.Write("Desc Tip Finan") : Response.Write(vbTab)
                    Response.Write("Desc Prog Esp") : Response.Write(vbTab)
                    Response.Write("Desc Cant Prop") : Response.Write(vbTab)
                    Response.Write("Total Descuentos") : Response.Write(vbTab)
                    Response.Write("Precio Venta") : Response.Write(vbTab)
                    Response.Write("Pago Separación") : Response.Write(vbTab)
                    Response.Write("Fecha Pag Sep") : Response.Write(vbTab)
                    Response.Write("Monto Cuota Inicial") : Response.Write(vbTab)
                    Response.Write("Saldo Financ") : Response.Write(vbTab)
                    Response.Write("Tipo de Financiamiento") : Response.Write(vbTab)
                    Response.Write("Entidad Financiera") : Response.Write(vbTab)
                    Response.Write("Fch. Venc. Sep") : Response.Write(vbTab)
                    Response.Write("Observación") : Response.Write(vbTab)
                    Response.Write("Vendedor") : Response.Write(vbTab)
                    Response.Write(vbCrLf)

                    For Each Fila As DataRow In dtSeparaciones.Rows
                        Dim valor As String

                        valor = Fila("PROYECTO").ToString
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = Fila("ETAPA").ToString
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = Fila("TORRE").ToString
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = Fila("TIPO").ToString
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = Fila("MODELO").ToString
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = Fila("N_INMUEBLE").ToString
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = String.Format("{0:#,###,##0.00}", Fila("AREA_OCUPADA").ToString)
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = Fila("ESTAC_MODELO").ToString
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = Fila("N_EST_1").ToString
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = Fila("N_EST_2").ToString
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = Fila("DEPOSITO").ToString
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = Fila("N_DEPOSITO").ToString
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = Fila("NOMBRE_CLIENTE").ToString
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = String.Format("{0:#,###,##0.00}", Fila("PRECIO_DEPA").ToString)
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = String.Format("{0:#,###,##0.00}", Fila("PREC_ESTAC_1").ToString)
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = String.Format("{0:#,###,##0.00}", Fila("PREC_ESTAC_2").ToString)
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = String.Format("{0:#,###,##0.00}", Fila("PREC_DEPOSITO").ToString)
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = String.Format("{0:#,###,##0.00}", Fila("DESC_SALA").ToString)
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = String.Format("{0:#,###,##0.00}", Fila("DESC_TIP_FINAN").ToString)
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = String.Format("{0:#,###,##0.00}", Fila("DESC_PROG_ESP").ToString)
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = String.Format("{0:#,###,##0.00}", Fila("DESC_CANT_PROP").ToString)
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = String.Format("{0:#,###,##0.00}", Fila("TOTAL_DESCUENTO").ToString)
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = String.Format("{0:#,###,##0.00}", Fila("PRECIO_VENTA").ToString)
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = String.Format("{0:#,###,##0.00}", Fila("PAGO_SEPARACION").ToString)
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = Fila("FECHA_PAG_SEP").ToString
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = String.Format("{0:#,###,##0.00}", Fila("MONTO_CUOTA_INICIAL").ToString)
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = String.Format("{0:#,###,##0.00}", Fila("SALDO_FINANC").ToString)
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = Fila("TIPO_FINANCIAMIENTO").ToString
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = Fila("ENTIDAD_FINANCIERA").ToString
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = Fila("FCH_VENC_SEP").ToString
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = Fila("OBSERVACION").ToString
                        Response.Write(valor) : Response.Write(vbTab)

                        valor = Fila("VENDEDOR").ToString
                        Response.Write(valor) : Response.Write(vbTab)

                        Response.Write(vbCrLf)
                    Next
                End If
                Response.End()
            Else
                Dim jsMensaje As String = Nothing
                jsMensaje = "<script>javascript:alert(' La consulta no pudo ser procesada.  Por favor inténtelo de nuevo.');</script>)"
                Controls.Add(New LiteralControl(jsMensaje))
            End If
        Catch ex As Exception
            Dim jsMensajeTwo As String = Nothing
            jsMensajeTwo = "<script>javascript:alert(' La consulta no pudo ser procesada.  Por favor inténtelo de nuevo.');</script>)"
        End Try

    End Sub

#End Region

#Region "       Venta Detalle                       "
    Protected Sub egvSeparacionVenta_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles egvSeparacionVenta.PageIndexChanging
        separaciones = Session("separacionesLista")
        If Not separaciones Is Nothing Then
            egvSeparacionVenta.DataSource = separaciones
            egvSeparacionVenta.PageIndex = e.NewPageIndex
            egvSeparacionVenta.DataBind()
            upnSeparacionVenta.Update()
        End If
    End Sub
    Protected Sub egvSeparacionVenta_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
        Handles egvSeparacionVenta.RowCreated
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")

            Dim strUidSeparacion As String = DataBinder.Eval(e.Row.DataItem, "idSeparacionVenta").ToString()
            Dim egvDetalleSeparacion As GridView = CType(e.Row.FindControl("egvDetalleSeparacion"), GridView)
            AddHandler egvDetalleSeparacion.RowCreated, AddressOf egvDetalleSeparacion_RowCreated
            If strUidSeparacion.Length > 0 Then
                separacionesDetalles = Session("separacionesListaDetalle")
                Dim LVentaDetalles = From vd In separacionesDetalles _
                                        Where vd.idProyecto.ToString = Me.Master.idProyecto AndAlso _
                                              vd.idEtapa = Me.Master.idEtapa AndAlso _
                                              vd.idSeparacionVenta = CType(strUidSeparacion, Int32) _
                                        Select vd

                If separacionesDetalles.Count > 0 Then
                    egvDetalleSeparacion.DataSource = LVentaDetalles
                    Dim objFila As ExGridView.ExtGridViewRow = CType(e.Row, ExGridView.ExtGridViewRow)
                    objFila.ShowExpand = True
                End If
            End If
        End If
    End Sub
    Protected Sub egvDetalleSeparacion_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
        End If
    End Sub
#End Region

End Class